#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

class Point
{
	friend ostream& operator<<(ostream& out, const Point& p);
	friend istream& operator>>(istream& in, Point& p);
public:
	Point(int x = 0, int y = 0)
		:_x(x), _y(y)
	{}
	Point(const Point& p)
		:_x(p._x), _y(p._y)
	{}
	~Point()
	{
		_x = _y = 0;
	}
	void getter(int& ReturnX,int& ReturnY)
	{
		ReturnX = _x;
		ReturnY = _y;
	}
	void setter(const int& x, const int& y)
	{
		_x = x;
		_y = y;
	}
	void Print()
	{
		cout << "( " << _x << ", " << _y << " )";
	}
private:
	int _x;
	int _y;
};

ostream& operator<<(ostream& out, const Point& p)
{
	cout << "( " << p._x << ", " << p._y << " )";
	return out;
}

istream& operator>>(istream& in, Point& p)
{
	cin >> p._x >> p._y;
	return in;
}

int main()
{
	Point p1;
	Point p2(10, 20);
	Point p3(p2);
	cout << p1 << endl;
	cout << p2 << endl;
	cout << p3 << endl;
	return 0;
}